Contents
  1. 1. Spring Boot的安装
  2. 2. 用Spring Boot开发web应用
    1. 2.1. 创建pom.xml文件
    2. 2.2. 编写代码
    3. 2.3. main方法
    4. 2.4. 运行程序
  3. 3. 总结

Spring Boot是Spring家族一个新兴的成员,它能用于快速构建基于Spring的独立的生产级的应用程序。我们可以将它与Spring平台的其他项目以及第三方库自由组合。大多数基于Spring Boot的应用只需要非常少量的Spring配置。

Spring Boot的安装

与其他Java库类似,Spring Boot也是打包成jar的形式,所以可以在应用中直接将spring-boot-*.jar引入到classpath中。可以像开发其他Java程序那样开发Spring Boot程序。

但是在现代的企业级Java开发中,一般会使用专门的构建工具来管理应用的整个生命周期,例如Maven和Gradle。

当使用Maven时,只需要在pom.xml中配置好相关依赖,就可以在构建过程中自动引用Spring Boot的相关jar。

用Spring Boot开发web应用

学习任何新技术,都是从开发Hello world级别的程序开始的。用Spring Boot结合Maven开发Hello world级别的Web应用可谓易如反掌。

创建pom.xml文件

在磁盘合适的位置新建一个项目文件夹,比如SpringBootTest。从终端进入该文件夹,创建一个pom.xml文件,输入如下内容并保存。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

可以看到引入了spring-boot-starter-parent和spring-boot-starter-web两个starter。Spring Boot是用于简化Spring应用开发的,spring-boot-starter-parent的作用是让maven自动引入默认的一些基础依赖,spring-boot-starter-web则会让maven自动引入web应用需要的依赖。试想一下如果我们不使用Spring Boot,而是手工用Spring,Spring MVC来开发web应用,那需要配置应用上下文,Servlet上下文等,在maven中也要手工将相关依赖都引入进来。配置量会成倍增加。而用Spring Boot则非常轻松,会将配置最少化。

有了这个pom文件,就可以用maven来构建程序了,可以用mvn package来测试,会看到maven会下载很多依赖,打印出如下信息,就证明能正常构建程序。
Building myproject 0.0.1-SNAPSHOT
Build Success
同时,项目文件夹下出现了target文件夹,该文件夹就是构建出来的可执行文件。
可以执行maven dependency:tree命令来打印出项目依赖的树形表示。

编写代码

使用Maven管理应用必须使文件夹结构符合maven的约定。所以在SpringBootTest文件夹下新建如下目录结构:
src/main/java
进入该文件夹,创建文件Example.java,输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}

@RestController注解标志这个类是一个web Controller,并且是REST的访问方式。

@RequestMapping提供了“路由”信息。它告诉Spring任何HTTP请求,如果路径符合“/”就会被路由到home方法。因为是用Rest方式访问的Controller,所以直接返回Hello World!字符串,而不是重定向到一个view。

@EnableAutoConfiguration告诉Spring Boot开发者希望如何配置Spring,依据pom.xml中添加的依赖。因为spring-boot-starter-web依赖会自动添加Tomcat和Spring MVC,自动配置组件就知道开发者在开发一个web应用程序,并据此设置Spring。

main方法

这里的main方法就是Java程序中标准的main方法。但该方法代理执行了Spirng Boot的SpringApplication类的run方法,从而启动了Spring去自动配置Tomcat。此处需要将Example.class作为参数传给run方法,告诉SpringApplication它是主要的Spring组件。

运行程序

万事俱备只欠东风。用终端进入Spring进入到SpringBootTest(必须是pom.xml所在文件夹),输入如下命令。
mvn spring-boot:run

会看到输出如下内容:

1
2
3
4
5
6
7
8
9
10
 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)
…… …
…… …
Started Example in 3.239 seconds (JVM running for 21.929)

打开浏览器,输入localhost:8080,会看到如下输出
Hello World!

总结

从上文可以看出,Spring Boot可以在Spring框架的基础上快速搭建应用,例如Web应用。它可以有效减少配置量,而且可以使用内嵌的Web容器,可以高效地开发和测试程序。

Contents
  1. 1. Spring Boot的安装
  2. 2. 用Spring Boot开发web应用
    1. 2.1. 创建pom.xml文件
    2. 2.2. 编写代码
    3. 2.3. main方法
    4. 2.4. 运行程序
  3. 3. 总结